package com.xiongtian.springframework.aop;

/**
 * @Author: xiongtian
 * @CreateTime: 2025-04-17  11:42
 * @Version: 1.0
 * @Description:
 *
 * Core Spring pointcut abstraction.
 *
 * <p>A pointcut is composed of a {@link ClassFilter} and a {@link MethodMatcher}.
 * Both these basic terms and a Pointcut itself can be combined to build up combinations
 * <p>
 * 切入点接口，定义用于获取ClassFilter和MethodMatcher的两个类，这两个接口
 * 获取都是切点表达式的内容
 */

public interface Pointcut {
    /**
     * Return the ClassFilter for this pointcut.
     *
     * @return the ClassFilter (never <code>null</code>)
     */
    ClassFilter getClassFilter();

    /**
     * Return the MethodMatcher for this pointcut.
     *
     * @return the MethodMatcher (never <code>null</code>)
     */
    MethodMatcher getMethodMatcher();
}
